package top.lishuoboy.shiro;

import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.crypto.hash.Md5Hash;

/**
 * shiro的Md5工具
 * 还有更多hash散列工具
 */
@Slf4j
public class TestShiroMD5 {
    public static void main(String[] args) {

        //创建一个md5算法
//        Md5Hash md5Hash = new Md5Hash();
//        md5Hash.setBytes("123".getBytes()); // 不要用set方法，用下面的构造器
//        String s = md5Hash.toHex();
//        log.info("s=={}", s);

        //使用md5
        Md5Hash md5Hash = new Md5Hash("111111");
        log.debug("md5Hash.toHex()=={}", md5Hash.toHex());  // 96e79218965eb72c92a549dd5a330112

        //使用MD5 + salt处理。
        // 本质是salt拼接在1111前面了，相当于 new Md5Hash("salt!@#111111");
        Md5Hash md5Hash1 = new Md5Hash("111111", "salt!@#");  // 92a73e4b0c70abff9c95300309466464
        log.debug("md5Hash1.toHex()=={}", md5Hash1.toHex());

        //使用md5 + salt + hash散列
        Md5Hash md5Hash2 = new Md5Hash("111111", "salt!@#", 1024); // 45c71c907abdbf45044b9e163a9a47d1
        log.debug("md5Hash2.toHex()=={}", md5Hash2.toHex());
    }
}

